home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / SQL and Data Base / Logic Works ERwin 3.5 / data.1 / erwentdl.fiv < prev    next >
Encoding:
Text File  |  1998-01-28  |  2.5 KB  |  77 lines

  1. /* ------------------------------------------------------------------------
  2. --    ERWENTDL.FIV                                                          --
  3. --    Copyright (C) Logic Works, Inc. 1994                                 --
  4. --                                                                       --
  5. --  Stored function to delete ERwin entity from                          --
  6. --  the Oracle CASE 5.1 dictionary                                              --
  7. ------------------------------------------------------------------------- */
  8. CREATE OR REPLACE FUNCTION ERWENTDL (pName CI_ENTITIES.NAME%TYPE,
  9.                       pApp  CI_APPLICATION_SYSTEMS.NAME%TYPE,
  10.                       pVersion CI_APPLICATION_SYSTEMS.VERSION%TYPE,
  11.                       pEntityID    CI_ENTITIES.ID%TYPE)
  12.         RETURN CI_ENTITIES.ID%TYPE
  13. AS
  14.         TYPE recApp IS RECORD
  15.             (ID            CI_APPLICATION_SYSTEMS.ID%TYPE,
  16.              NAME         CI_APPLICATION_SYSTEMS.NAME%TYPE,
  17.              VERSION    CI_APPLICATION_SYSTEMS.VERSION%TYPE);
  18.         TYPE recEntity IS RECORD
  19.             (APPLICATION_SYSTEM_OWNED_BY   CI_ENTITIES.APPLICATION_SYSTEM_OWNED_BY%TYPE,
  20.              ID CI_ENTITIES.ID%TYPE,
  21.              NAME CI_ENTITIES.NAME%TYPE);
  22.         prEntity        recEntity;
  23.         stEntity        cioentity.data;
  24.         workingAppID    CI_APPLICATION_SYSTEMS.ID%TYPE;
  25.           act_status        varchar2(100);
  26.         act_warnings    varchar2(100);
  27. BEGIN
  28.         if cdapi.initialized = false then
  29.             RETURN -1;
  30.         end if;
  31.         IF pVersion = 0 THEN 
  32.             SELECT APPLICATION_SYSTEM_OWNED_BY, ID, NAME INTO prEntity
  33.                 FROM CI_ENTITIES
  34.                 WHERE    CI_ENTITIES.NAME=UPPER(pName) 
  35.                 AND CI_ENTITIES.APPLICATION_SYSTEM_OWNED_BY =
  36.                 (SELECT ID FROM CI_APPLICATION_SYSTEMS WHERE 
  37.                 CI_APPLICATION_SYSTEMS.NAME = UPPER(pApp) AND
  38.                 CI_APPLICATION_SYSTEMS.LATEST_VERSION_FLAG='Y');
  39.         ELSE
  40.             SELECT APPLICATION_SYSTEM_OWNED_BY, ID, NAME INTO prEntity
  41.                 FROM CI_ENTITIES
  42.                 WHERE    CI_ENTITIES.NAME=UPPER(pName) 
  43.                 AND CI_ENTITIES.APPLICATION_SYSTEM_OWNED_BY =
  44.                 (SELECT ID FROM CI_APPLICATION_SYSTEMS WHERE 
  45.                 CI_APPLICATION_SYSTEMS.NAME = UPPER(pApp) AND
  46.                 CI_APPLICATION_SYSTEMS.VERSION=pVersion);
  47.         END IF;
  48.         cdapi.open_activity;
  49.         cioentity.del(prEntity.ID);
  50.         cdapi.validate_activity(act_status, act_warnings);
  51.         cdapi.close_activity(act_status);
  52.         if act_status != 'Y' then
  53.             cdapi.abort_activity;
  54.             RETURN -1;
  55.         else
  56.             RETURN prEntity.ID;
  57.         end if;
  58. EXCEPTION
  59.         WHEN NO_DATA_FOUND THEN
  60.             if cdapi.activity is not null then 
  61.                 cdapi.abort_activity;
  62.             end if;
  63.             RETURN -1;
  64.         WHEN OTHERS THEN
  65.             if cdapi.stacksize > 0 then 
  66.                 if cdapi.activity is not null then 
  67.                     cdapi.abort_activity;
  68.                 end if;
  69.             else
  70.                 if cdapi.activity is not null then 
  71.                     cdapi.abort_activity;
  72.                 end if;
  73.             end if;
  74.             RETURN  -1;
  75. END ERWENTDL;
  76. /
  77.